#pragma once
#include "settings.h"


class SettingsManager
{
public:
    
    /**
     * Zwraca instancje singletona.
     */
    static SettingsManager* GetInstance();

    /**
     * Zwraca aktualne ustawienia gry.
     */
    const Settings& GetCurrentSettings();

    /**
     * Wczytuje ustawienia gry.
     */
    void LoadSettings();

    /**
     * Zapisuje ustawienia gry.
     */
    void SaveSettings(Settings settings);

private:

    /**
     * Konstruktor domyslny.
     * Pusty na potrzeby singletona.
     */
    SettingsManager() { }

    /**
     * Konstruktor kopiujacy.
     * Niezaimplementowany na potrzeby singletona.
     */
    SettingsManager(const SettingsManager &);

    /**
     * Operator przypisania.
     * Niezaimplementowany na potrzeby singletona.
     */
    void operator=(const SettingsManager &);

};
